A number of different video encoding standards have been established for encoding digital video sequences. The Moving Picture Experts Group (MPEG), for example, has developed a number of standards including MPEG-1, MPEG-2 and MPEG-4. Other examples include the International Telecommunication Union (ITU) H.261 standard, the ITU H.263 standard, and the emerging ITU H.264 standard. These video encoding standards generally support improved transmission efficiency of video sequences by encoding data in a compressed manner. Compression reduces the overall amount of data that needs to be transmitted for effective transmission of video frames.
The MPEG-4, ITU H.261, ITU H.263 and ITU H.264 standards, for example, support video encoding techniques that utilize similarities between successive video frames, referred to as temporal or Inter-frame correlation, to provide Inter-frame compression. The Inter-frame compression techniques exploit data redundancy across frames by converting pixel-based representations of video frames to motion representations, typically referred to as motion vectors. Frames encoded using Inter-frame techniques are referred to as P (“predictive”) frames or B (“bi-directional”) frames. Some frames, or macroblocks (MBs) within a frame, are encoded using spatial, Intra-frame compression, which is non-predictive. An Intra-coded frame is typically referred to as an I (“Intra”) frame.
To encode a video frame, an encoder divides the video frame into macroblocks and searches macroblocks within an adjacent video frame to identify the most similar macroblock. This process, referred to as motion estimation, is computationally intensive. The encoder encodes differences between the macroblocks, and generates a motion vector that identifies the macroblock from the adjacent video frame. A decoder receives the motion vector and encoded differences, and performs motion compensation to generate a sequence of video frames.